Embodiments described herein relate generally to flow control, and, in particular, to virtual channel flow control associated with multi-staged switch fabrics.
Transmission of data from a transmitter to a receiver via a physical link (e.g., an Ethernet link) can be, for example, disrupted because of congestion at a queue configured to receive the data at the receiver. In some instances, the disruption can cause head-of-line (HOL) blocking and/or result in the loss of at least portions of the data due to buffer overflow. Known flow control protocols such as Ethernet pause (Institute of Electrical and Electronics Engineers (IEEE) 802.3x) and priority pause (IEEE 802.1Qbb) can be used to substantially prevent buffer overflow in some applications, and quantized congestion notification (QCN) (IEEE 802.1Qau) can be used for management of data congestion within a multi-hop network that has relatively steady data flows. These known flow control protocols, however, may not adequately resolve congestion issues related to multi-stage queues and/or may not adequately handle the rapid onset of congestion within a hop-by-hop network link caused by, for example, bursts of data.
Thus, a need exists for methods and apparatus for data flow control between modules associated with a hop-by-hop network link.